Project DOT Revisited

Why Range and Bandwidth are Related

(or, Project DOT Revisited: 10 Years Later)

This presentation aims to revisit a presentation I gave almost ten years ago. The original presentation can be found at https://docs.google.com/presentation/d/1-sF7oIjhdaYN5VojH-YYZvhegCw0_bhFqu39Mbm5oNE/edit?usp=sharing.

History

Around 10 years ago, I became fascinated with Free-space Optical Communications.

Since that time, nothing has directly come of this interest; however, I did learn something along the way that I thought was fascinating.

To most electrically-experienced engineers here, what I'm about to discuss will be obvious. However, it was not obvious to me at the time, and I'd like to share my understanding of the matter.

And that obvious thing is none other than a DC blocking capacitor at the front-end of a low-noise amplifier. That one simple component makes life for long-range digital communications miserable. But, as it happens, it also affects how we design digital codes for shorter-range communications too.

To help illustrate this, let me start from the beginning.

Base Case

Imagine we have two parties that are interested in communicating something.

+-----+               +-----+
|  A  |               |  B  |
+-----+               +-----+

The simplest thing that A or B can do is send a simple "Hey, something happened!" message to each other. This can be accomplished by stringing a single "line" between them.

+-----+               +-----+
|  A  |---------------|  B  |
+-----+               +-----+

For simplicity's sake, this "line" is typically a single copper pair. One leg of the pair is grounded, while the other leg carries the intelligence.

We suppose that A and B agree a priori that 0V on the line means nothing is happening, while some positive voltage implies something is happening. They decide this because, when left to its own devices and in the absence of any energy input, the signal conductor will tend to float at or close to 0V.

Notes
Let's ignore differential pairs for the time being, for they don't really add anything to the discussion.
Note that our scenario is counter to most systems where some positive voltage
implies no event, while 0V implies an event. I.e., most CPU "interrupt" signals, RS-232 signal wires, etc. Again, we're ignoring such details because it doesn't add anything important to the discussion at this point.
+-----+ 0V            +-----+
|  A  |---------------|  B  |
+-----+            0V +-----+

Something's Happened!

Suppose A wants to signal to B that some kind of event happened. It may do so by asserting a positive voltage or current on the line. B can readily detect this, because it knows that a grounded wire implies nothing's happening.

+-----+       3V      +-----+
|  A  |---------------|  B  |
+-----+               +-----+

This works great as long as A has one, and only one, event they want to notify B about. A home alarm system might be configured this way, for example.

However, as we know from all the smart phones, watches, etc. and the rich media these devices can deliver, this is not sufficient for work-a-day communications.

So how do we work around this limitation?

What Happened? Sending Intelligence.

One way to work around this limitation is to assign different voltages for different messages. However, as it turns out, it's not adequate for long-haul communications. First, it's susceptible to interference, not just from adjacent lines of communication, but also from extraterrestrial or other physical influences, like cosmic rays, aurora, and even thermal noise in the wire itself. So, we'll skip analog signalling.

One way to signal which kind of event happened is to pulse the line connecting A and B. There are three ways of doing this, depending on how good the clocks are between A and B.

Pulse Width Modulation

          ______
        _/      \___
          ___
+-----+ _/   \______  +-----+
|  A  |---------------|  B  |
+-----+               +-----+

In this case, station B's clock need not be perfectly synchronized with station A. In fact, station A's time base doesn't have to be related to B's at all. All B needs to do is detect when the signal goes positive, and for how long.

A short pulse can mean one thing, and a long pulse can mean something else. In fact, if your timer is accurate enough, you can send multiple bits of data this way. If your pulse can take on one of 17 different lengths, then you can encode up to four bits of data per pulse, or one message separator pulse.

In this way, A can send B any arbitrary message using binary signaling, even preserving message boundaries.

The problem with pulse width modulation, however, is that you take different lengths of time to send different messages. Nonetheless, PWM has found application in a wide variety of applications, include remote controlled devices controlled by servo motors, such as aircraft or cars.

Pulse Position Modulation

              ___
       ______/   \___
          ___
+-----+ _/   \_______ +-----+
|  A  |---------------|  B  |
+-----+               +-----+

Another approach is to assign when you pulse the line to different kinds of messages or events. Assume that A and B both start their stop-watches at the same time. Then a pulse 1 second after they start might mean one thing, while a pulse 2 seconds after might mean something else.

For Pulse Position Modulation to work, the clocks at both stations must be precisely synchronized to each other. This is because, in the absence of any other modulation technique, neither station will know what time slots correspond to which messages.

Very often, as you can imagine, PPM systems use some other method to synchronize the stations. This is an additional complexity of using PPM; however, unlike PWM, you can send any arbitrary message in a fixed, predictable time frame.

In point of fact, the time at which you start to send a message to the time at which you cease to send is often called a frame. You might have heard of frames in the context of packet-switched networking, for example.

The problem with PPM is, besides the need to synchronize the stations periodically, the fact that it takes a relatively long time to send any data. Again, if we want to send either an end of message token or up to four bits of data, we would need 18 slots (17 for the payload content, plus one more for sync). In terms of bits, this means that any four bits you want to send is expanded to 18 bits. Put another way, you can send any data you want; but, it'll take slightly more than 4 times as long to send it as necessary.

It's a mystery to me why anyone would want to use PPM over PWM, when PWM can send the same data faster than PPM can, in all cases. PPM's only benefit is fixed timing. Nonetheless, studying PPM is useful because getting it to work allows for a much better system to be used.

Pulse Code Modulation

Let's make believe for a moment. Put yourself in AT&T's position, in 1957. Your mission is to carry 24 concurrently in-progress phone conversations over a distance of a mile using only one pair of wires. Let's simplify the problem by ignoring operations and management overhead. How do you do this?

Each audio channel runs at 8000 samples per second, and each sample consists of 8 bits. If we were to use a PWM transmission approach, we would need to make sure all 24 audio channels fit in 125 microseconds. So, 125 microseconds divided by 24 comes to 5.2 microseconds per channel. Each channel can support one of 256 different values, so our pulses must range from 20.3ns all the way up to 5.2us. That is a huge time disparity, and requires exquisit synchronization on both ends of the link. Remember, the world's fastest digital circuits of the day run in microseconds; vacuum tube technology doesn't allow for nanosecond precision.

What about PPM? Like PWM above, we would need to maintain clocks synchronized down to at least 20.3ns. Actually, even shorter because each frame would be 257 bits, not up to 256 like with PWM. That extra synchronization bit counts!

So, it looks like PPM does not offer us any technical advantages. Or, does it?

You might notice that if the clocks of A and B are mutually synchronized, then the fact that only one time-slot of the following frame is a relative waste of time. It ought to be possible to reduce the time taken to send a code if we use more than one slot. How those slots are utilized determines what values can be found in the alphabet of your code.

      __    __       __
    _/  \__/  \_____/  \__
      _____    __    __
    _/     \__/  \__/  \__
+-----+               +-----+
|  A  |---------------|  B  |
+-----+               +-----+

It takes fewer slots to transmit the same information, which means we can send them more slowly and still save time on average. While both A and B need to be mutually synchronized, the precision need not be as strict. Yes, we need overhead in the form of frame synchronization, but even so, the code length will on average be substantially smaller than even most PWM frames, giving us a net win in both transmission time and circuit complexity.

Indeed, PCM forms the foundation for every major communications technology today. This includes the humble RS-232 connection all the way up to gigabit Ethernet backbones, and up to SONET/SDH back-hauls. But, not only that, PCM is used in compact disc and DVD media, as well as in most magnetic storage media (usually in the form of MFM, GCR, or some other encoded sequence).

So, here's a question then: if PCM is so awesome, how come we have to slow down our communications speed as distance between A and B increases?

Distance vs. Bandwidth

The Little White Lie